package com.example.demo.service.serviceImpl;

import com.example.demo.common.entity.ParamBase;
import com.example.demo.common.entity.ParamPage;
import com.example.demo.common.util.ListResult;
import com.example.demo.common.util.OptResult;
import com.example.demo.service.DictionaryService;
import org.springframework.stereotype.Service;

import java.util.Map;

@Service
public class DictionaryServiceImpl implements DictionaryService {
	@Override
	public ListResult<Map<String, Object>> page(ParamPage<Map<String, Object>> paramPage) {
		return null;
	}

	@Override
	public OptResult save(ParamBase<Map<String, Object>> paramBase, String token) {
		return null;
	}

	@Override
	public OptResult delete(ParamBase<Map<String, Object>> paramBase, String token) {
		return null;
	}

	@Override
	public ListResult<Map<String, Object>> typePage(ParamPage<Map<String, Object>> paramPage) {
		return null;
	}
//	 @Autowired
//	 DictionaryMapper dictionaryMapper;
//	 @Autowired
//	 TSysLogMapper tSysLogMapper;
//
//	    @Override
//	    public ListResult<Map<String, Object>> page(ParamPage<Map<String, Object>> paramPage) {
//	        IPage<Map<String, Object>> page = new Page<>(paramPage.getPageIndex(), paramPage.getPageSize());
//	        List<Map<String, Object>> list = dictionaryMapper.page(paramPage.getParam(), page);
//	        ListResult<Map<String, Object>> result = BucnUtil.page2ListResult(page, list);
//	        return result;
//	    }
//
//		/**
//		 * 	事务
//		 */
//		@Transactional
//	    @Override
//	    public OptResult save(ParamBase<Map<String, Object>> paramBase, String token) {
//	        Map<String, Object> param = paramBase.getParam();
//	        //判断是否有主键 有就是更新 没有就是新增
//	        if (param.get("id") != "") {
//	            if (param.get("updateControlId") == null) {
//	                BucnUtil.throwMessage("update_control_id");
//	            }
//	            //补充公共字段
//	            BucnUtil.userWrapUpdate(param, token);
//				param.put("menuId","MID06001");
//				param.put("executedTime", LocalDateTime.now());
//				param.put("menuName","字典管理");
//				param.put("operType","修改");
//				param.put("logDesc","修改了字典信息");
//	            tSysLogMapper.setLog(param);
//	            BucnInvoker.dmlInvoke(() -> dictionaryMapper.update(param));
//	        } else {
//	            //字段校验 t_bucn_cdata_validfield_base 配置表配置
//	            BucnUtil.fieldCheck("dic_info", param);
//	            BucnUtil.userWrapInsert(param, token);
//	            param.put("id", StringHelper.GetGUID());
//				param.put("menuId","MID06001");
//				param.put("executedTime", LocalDateTime.now());
//				param.put("menuName","字典管理");
//				param.put("operType","新增");
//				param.put("logDesc","新增了字典信息");
//				tSysLogMapper.setLog(param);
//	            BucnInvoker.dmlInvoke(() -> dictionaryMapper.insert(param));
//	        }
//	        return OptResultBuilder.createOk().build();
//	    }
//
//
//	    @Override
//	    public OptResult delete(ParamBase<Map<String, Object>> paramBase, String token) {
//	        Map<String, Object> param = paramBase.getParam();
//
//	       {
//	           if (param.get("updateControlId") == null) {
//	                BucnUtil.throwMessage("update_control_id");
//	            }
//	            //补充公共字段
//	            BucnUtil.userWrapUpdate(param, token);
//			   	param.put("menuId","MID06001");
//			  	param.put("executedTime", LocalDateTime.now());
//			    param.put("menuName","字典管理");
//			   	param.put("operType","删除");
//			   	param.put("logDesc","删除了字典信息");
//			   	tSysLogMapper.setLog(param);
//	            BucnInvoker.dmlInvoke(() -> dictionaryMapper.delete(param));
//	        }
//	        return OptResultBuilder.createOk().build();
//	    }
//
//
//	    @Override
//	    public ListResult<Map<String, Object>> typePage(ParamPage<Map<String, Object>> paramPage) {
//	        IPage<Map<String, Object>> page = new Page<>(paramPage.getPageIndex(), paramPage.getPageSize());
//	        List<Map<String, Object>> list = dictionaryMapper.typePage(paramPage.getParam(), page);
//	        ListResult<Map<String, Object>> result = BucnUtil.page2ListResult(page, list);
//	        return result;
//	    }

}
